<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>需求管理</title>
<meta name="uma.type" content="SupportingMaterial">
<meta name="uma.name" content="manage_requirements">
<meta name="uma.presentationName" content="需求管理">
<meta name="element_type" content="other">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="4.7703432975503635E-306"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">需求管理</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../rup/guidances/supportingmaterials/resources/pract_dgm32.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">需求管理的实践是一种查找、记载、组织和跟踪系统不断变化的需求的系统方法。</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../rup/domains/requirements_58267518.html" guid="_KVkLoN7HEdm8G6yT7-Wdqw">需求</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="Top" name="Top"></a> 
<h2>
    <a id="What is Requirements Management" name="What is Requirements Management">什么是需求管理？</a>
</h2>
<p>
    需求管理是一种查找、记载、组织和跟踪系统不断变化的需求的系统方法。
</p>
<p>
    我们将需求定义为“系统必须遵循的条件或能力”。
</p>
<p>
    我们将需求管理正式定义为一种系统方法，可执行以下两项任务：
</p>
<ul>
    <li>
        获取、组织和记载系统需求
    </li>
    <li>
        使客户和项目团队就系统不断变化的需求确立和保持一致意见
    </li>
</ul>
<p>
    有效需求管理的关键因素包括保持明确的需求说明，以及其他需求和其他项目工件的相应属性和可跟踪性。
</p>
<p>
    收集需求可能听起来是相当简单的任务。实际上，项目却会因为以下原因而遇到困难：
</p>
<ul>
    <li>
        需求并非总是明显的，并可能有许多来源。
    </li>
    <li>
        需求并非总是容易用语言表达清楚的。
    </li>
    <li>
        有许多不同详细程度的不同类型的需求。
    </li>
    <li>
        如果不加控制，需求的数量可能会变得难以管理。
    </li>
    <li>
        需求是彼此相关的，并且与软件工程流程的其他可交付工件也是相关的。
    </li>
    <li>
        需求具有唯一的属性或属性值。例如，它们不一定同等重要或同样容易实现。
    </li>
    <li>
        存在许多利益方，这意味着要由跨职能的几组人来管理需求。
    </li>
    <li>
        需求会变化。
    </li>
</ul>
<p>
    无论您多么仔细地定义需求，事情也始终会有变化的。使变化的需求的管理任务变得复杂，不仅是因为变化的需求意味着必须花时间实现特定的新功能，还因为一个需求的变化可能会对其他需求有影响。管理变更包括建立基线、确定跟踪哪些相关性很重要、建立相关项之间的可跟踪性以及实现变更控制之类的活动。
</p>
<h2>
    <a id="Use-Case Driven Development" name="Use-Case Driven Development">用例如何推动开发？</a>
</h2>
<p>
    对于组织功能需求，我们推荐的方法是使用用例。组织需求时并不采用符号列表的方式，而是要以某种方式讲清楚某人可能如何使用该系统。这使得需求更完整、更一致，也使用户能更好地理解需求的重要性。
</p>
<p>
    使用传统的面向对象系统模型，通常很难说明系统如何执行其应执行的操作。这种困难源于系统执行某些任务时系统中缺少“红线”。在 Neusoft Unified
    Process（NUP）中，用例就是这条线，因为它们定义了系统执行的操作。用例不属于传统面向对象的范畴，但它们的重要性则更为明显。用例作为统一模型语言的一部分，进一步强调了这种重要性。
</p>
<p>
    NUP 采用一种“用例推动法”，这意味着为系统定义的用例是整个开发流程的基础。
</p>
<p>
    用例在若干规程中都起了作用。
</p>
<ul>
    <li>
        用例的概念可用于表现业务流程。我们将此用例变体称为“业务用例”。“业务建模”规程中包含了该用例。
    </li>
    <li>
        作为软件需求，用例是在“需求”规程中描述的。用例构成一种重要的基础概念，客户及系统的开发人员与测试人员都必须接受这一概念。
    </li>
    <li>
        在“项目管理”规程中，用例充当计划迭代开发的基础。
    </li>
    <li>
        用例在设计模型中是作为“分析和设计”规程的一部分来实现的。用例实现描述的是，根据设计模型中的交互对象，设计如何支持用例。
    </li>
    <li>
        用例最终成为已实现的和可测试的场景，所以在“实现”和“测试”规程这两方面都是重要的关注问题。它们用于推导测试用例和测试脚本；系统的功能是通过执行练习每个用例的测试场景而得以验证的。
    </li>
    <li>
        在“部署”规程中，用例相当于用户手册中所描述内容的基础。用例还可用于定义产品的订购单位。例如，客户可以使用特定的一组用例来配置系统。
    </li>
</ul><br /></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
